The Victory lets us add charts and data visualization into our React app.
In this article, we’ll look at how to add charts into our React app with Nivo.
Parallel Coordinates Chart
Nivo comes with code to let us add a parallel coordinates chart into our React app.
To install the required packages, we run:
npm i @nivo/parallel-coordinates
Then we can add the chart by writing:
import React from "react";
import { ResponsiveParallelCoordinates } from "@nivo/parallel-coordinates";
const data = [
{
temp: 24,
cost: 32344,
color: "green",
target: "D",
volume: 3.32478102470854
},
{
temp: 19,
cost: 100448,
color: "green",
target: "E",
volume: 5.052307538977317
},
{
temp: 32,
cost: 266169,
color: "yellow",
target: "D",
volume: 4.657311172596244
},
{
temp: 8,
cost: 84370,
color: "green",
target: "D",
volume: 0.6268058953310531
},
{
temp: 21,
cost: 304422,
color: "red",
target: "D",
volume: 3.3590163049771173
},
{
temp: -7,
cost: 152254,
color: "yellow",
target: "C",
volume: 6.019571437532089
},
{
temp: 3,
cost: 241390,
color: "red",
target: "E",
volume: 1.0655003648315398
},
{
temp: 15,
cost: 277920,
color: "yellow",
target: "C",
volume: 0.700657465435478
},
{
temp: 12,
cost: 294237,
color: "green",
target: "B",
volume: 5.221829062361729
},
{
temp: 34,
cost: 363216,
color: "red",
target: "A",
volume: 1.9905418770819305
},
{
temp: -5,
cost: 347671,
color: "green",
target: "B",
volume: 1.287223272665619
}
];
const MyResponsiveParallelCoordinates = ({ data /* see data tab */ }) => (
<ResponsiveParallelCoordinates
data={data}
variables={[
{
key: "temp",
type: "linear",
min: "auto",
max: "auto",
ticksPosition: "before",
legend: "temperature",
legendPosition: "start",
legendOffset: 20
},
{
key: "cost",
type: "linear",
min: 0,
max: "auto",
ticksPosition: "before",
legend: "cost",
legendPosition: "start",
legendOffset: 20
},
{
key: "color",
type: "point",
padding: 1,
values: ["red", "yellow", "green"],
legend: "color",
legendPosition: "start",
legendOffset: -20
},
{
key: "target",
type: "point",
padding: 0,
values: ["A", "B", "C", "D", "E"],
legend: "target",
legendPosition: "start",
legendOffset: -20
},
{
key: "volume",
type: "linear",
min: 0,
max: "auto",
legend: "volume",
legendPosition: "start",
legendOffset: -20
}
]}
margin={{ top: 50, right: 60, bottom: 50, left: 60 }}
/>
);
export default function App() {
return (
<div style={{ width: 400, height: 300 }}>
<MyResponsiveParallelCoordinates data={data} />
</div>
);
}
We add the data
array to store the data that we’ll render in our chart.
temp
and const
are the values.
color
have the line colors.
variables
have the lines.
key
has the property name with the value for the line.
type
has the type of line.
min
and max
have the min and max values. They are calculated automatically if we set them to 'auto'
.
ticksPosition
sets the tick position.
legend
has the legend value.
legendPosition
has the position of the legend item.
legendOffset
has the legend offset.
margin
have the margins.
In App
, we render the chart by setting the width and height.
Conclusion
We can add a parallel coordinates chart easily into our React app with Nivo.